iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
1
自我挑戰組

非本科系也能懂和該懂得作業系統系列 第 4

Day 4 - 作業系統歷代的演進

  • 分享至 

  • xImage
  •  

上一章節講到說,作業系統的定位是在硬體設備與應用程式的中介層,要管理其下的硬體運行狀況,也要顧及上層應用程式的支援。電腦的歷史並不久遠,但卻發展和改變的非常快速,今天來探討一下從最古早超大一台的電腦作業系統,到現在的演化過程。

Bash System

Bash雖然是最古早的作業系統類型,但至今仍有一些地方在使用這一類型的作業系統架構。首先,當一個程式需要被執行的時候,會先被寫入到我們的記憶體裡面(CPU沒辦法直接讀取硬碟),Bash System最大的特色就在於,當程式被載入後,就會開始(瘋狂)的執行,程式執行間不會有任何的中斷和使用者互動,並且一次只能處理一個程式,也因為I/O的速度是遠小於CPU的運算速度,CPU常常會處於閒置的狀態(等待I/O)。

Multi-Programming System

Multi-programming的出現就是要來改善Bash System的運作方式,CPU的閒置時間太長的問題,改善的方法就是一個工作做的太閒,那就給CPU很多個工作。與Bash不同,multi-programming能夠載入多個程式至記憶體並執行,一但CPU執行時遇到I/O,馬上就轉去執行另一個job,只要當I/O結束時再回來通知CPU說已經完成就好。透過這樣的方法,能夠減少CPU在閒置的時間,也能夠同時執行多支程式,也比較符合我們現代對於作業系統的需求,但依舊沒有辦法解決的事使用者的介面,程式在執行時是沒有辦法被使用者插手的。

Time-Sharing System

Time-sharing就是我們近代所使用的作業系統,其使用時間的觀念去切割CPU的運行,CPU會在一個很短的時間間隔不斷的轉跳執行的instruction,基本上有三種情況會觸發這個轉跳(switch)的機制

  • 運行結束時
  • 等待I/O
  • 經過一個很短的時間間隔(可能是幾個minisecond)

透過這個不斷切換的過程,可以安插使用者的互動(interactive)在其中(大多是鍵盤和滑鼠),也因為這樣子的機制,可以讓多個使用者同時去使用這台機器的資源。藉此方法以滿足讓資源充分使用,以及使用者互動的需求。

為了達到Time-Sharing System,作業系統有幾個大方向需要去處理:

  • CPU scheduling:CPU會跳轉的去執行不同的instance,但哪個先哪個後呢?需要有一個scheduling的方法去安排。
  • Memory Managerment:因為不像Bash僅僅執行一支程式,記憶體會由多個程式共享,那如何讓它不會衝突甚至覆寫到其他支程式,甚至還有當記憶體不足時會從硬碟要一些空間來當作記憶體的Virtual Memory的機制。
  • I/O system:CPU如何去與Deivce互動,並讓IO完成後通知。
  • Synchronization:執行多個程式,可能會互相關聯,那就需要去考慮同步非同步的問題。

當然作業系統不只這幾個大方向,但這就是為什麼Operating System Concepts這本恐龍書厚厚一疊的原因了。


上一篇
Day 3 - 作業系統的定位
下一篇
Day 5 - Process, Instruction, Program
系列文
非本科系也能懂和該懂得作業系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
latt100111110
iT邦新手 5 級 ‧ 2021-05-31 21:51:14

是batch不是bash~

我要留言

立即登入留言